package com.orangelife.webservice.service.propApp;

import javax.jws.WebParam;
import javax.jws.WebService;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;

import org.apache.cxf.interceptor.InInterceptors;
import org.apache.cxf.interceptor.OutInterceptors;

import com.orangelife.exception.AppBizException;
import com.orangelife.webservice.service.paybill.entity.PayBillDto;

@WebService
@InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor")
@OutInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingOutInterceptor")
public interface IPropAppWebService {

	/**
	 * 功能:APP物业缴费查看缴费账单细节
	 * 
	 * @param request
	 * @param apartmentID
	 * @param commID
	 * @param type
	 * 
	 * @return
	 * @throws AppBizException
	 * 
	 * 
	 * */
	@GET
	@Path("/FeeDetailForApp")
	@Produces({ "application/json" })
	public Response FeeDetailForApp(@Context HttpServletRequest request,
			@QueryParam("apartmentID") String apartmentID,
			@QueryParam("commID") String commID,
			@QueryParam("type") String type,@QueryParam("otherName") String otherName,
									@QueryParam("isPre") String isPre)
			throws AppBizException;

	/**
	 * 功能:APP物业缴费查看缴费列表
	 * 
	 * @param request
	 * @param commID
	 * 
	 * @return
	 * @throws AppBizExceptions
	 * */
	@GET
	@Path("/FeeListForApp")
	@Produces({ "application/json" })
	public Response FeeListForApp(@Context HttpServletRequest request,
			@QueryParam("commID") String commID) throws AppBizException;

	/**
	 * 功能：根据房屋id获取全部缴费信息
	 * 
	 * @param request
	 * @param commID
	 * 
	 * @return
	 * @throws AppBizExceptions
	 * */
	@GET
	@Path("/totalfee")
	@Produces({ "application/json" })
	public Response getTotalFeeByApartmentID(
			@Context HttpServletRequest request,
			@QueryParam("commID") String commID,
			@QueryParam("apartmentID") String apartmentID)
			throws AppBizException;

	/**
	 * 功能:APP删除用户绑定的小区
	 * 
	 * @param request
	 * @param commId
	 * @param apartmentId
	 * @return
	 * @throws AppBizExceptions
	 * */
	@DELETE
	@Path("/deleteFeeMember")
	@Produces({ "application/json" })
	public Response deleteFeeMember(@Context HttpServletRequest request,
			@QueryParam("apartmentId") String apartmentId,
			@QueryParam("commId") String commId) throws AppBizException;

	/**
	 * 功能:APP历史缴费列表
	 * 
	 * @param request
	 * @param commID
	 * @param apartmentID
	 * @return
	 * @throws AppBizExceptions
	 * */
	@GET
	@Path("/FeeHistoryListForApp")
	@Produces({ "application/json" })
	public Response FeeHistoryListForApp(@Context HttpServletRequest request,
			@QueryParam("commID") String commID,
			@QueryParam("apartmentID") String apartmentID,
			@QueryParam("userID") String userID) throws AppBizException;

	/**
	 * 功能:APP历史缴费账单细节
	 * 
	 * @param request
	 * @param apartmentID
	 * @param commID
	 * @param paybillId
	 * 
	 * @return
	 * @throws AppBizException
	 * 
	 * 
	 * */
	@GET
	@Path("/FeeHistoryDetailForApp")
	@Produces({ "application/json" })
	public Response FeeHistoryDetailForApp(@Context HttpServletRequest request,
			@QueryParam("apartmentID") String apartmentID,
			@QueryParam("commID") String commID,
			@QueryParam("payBillID") String paybillId) throws AppBizException;

	@GET
	@Path("/result")
	@Produces({ "application/json" })
	public Response result(@Context HttpServletRequest request);

	@POST
	@Path("/_check")
	@Produces({ "application/json" })
	public Response _check(@Context HttpServletRequest request,
			@WebParam PayBillDto payBillDto) throws AppBizException;
}
